FreshでObsidian Publishライクなブログを目指す
作成日
更新日
現状
- ブログをWordPressからFreshに移行しました【WIP】
- Fresh+Obsidianへの移行後のブログの不満点
変えること
ディレクトリをフラットにする
サブモジュールから取得するという点もできれば変えたい
画像をDBに保存する?
- GPT的には別にやらなくていいらしい
記事をDBに保存する?
- これもGPT的にはやらなくていいっぽい
プレビューが表示されないので確認してから投稿されて欲しい
ブログが重い
- 画像が重いだけで、コレまでの方法でも悪くはなさそう?
- 画像だけはSupabase Storageに移行するのが良さそう。
- あとWEBPならまだマシそう。
DB に画像を保存すると、クエリ速度が落ちる
- 画像はバイナリデータ(BLOB)であり、DB に保存すると検索パフォーマンスが悪化する
- 画像はCDN で配信 するのが一般的
Markdownはテキストデータのため、DB に適している
- メタデータ(タイトル・タグ)と一緒に管理しやすい
- フルテキスト検索に対応しやすい
- でもwiki的にリンクをつけるので別にテキスト検索はしないか?
方針
- 画像をSupabase Storage移行する。
- 料金をみる
- コンテンツをSupabaseに置く
- コレは必須ではない
- 検索性が高くなるのでできれば採用したい
- 料金次第
- 記事のプレビュー機能を作る
- ローカルでプレビューを行う or プレビュー用テーブルを作る
- GitHub Actions + Preview ブランチにデプロイする
- 既存のslugはなるべくそのままで
- private が true の時はリンクをさせず、private false のコンテンツはリンクにする
- 書く時には気にせず全てをウィキリンクにしておくことができる。
- 外部リンクと内部リンクでリンクの色を変えたい
やること
- GitHub Actionsを使ってSupabaseにObsidianの記事をアップロードする
- GitHub Acitonsを使ってSupabase Storage に画像をアップロードする
- FreshでSupabase上の記事を取得する
- FreshでSupabase上の画像を取得する
- FreshでObsidianのウィキリンクをパースする
全てを作り替えねばならぬ
一旦デザインと構成を練り直す。
011_BlogImages
と002_Images
を分けていたけど002_Images
に統一する。- Obsidianで画像の配置場所をフォルダごとに決める機能はないので(一応どうにかする方法はあるだろうけど。)
- 移動DONE
- スクリプト側も変えた。
010_Blog
の中にディレクトリを作っちゃう?- 基本は全部フラットにしたいが、
about
やcontact
といったページは分けたい。 page
,posts
,works
にいれた。category
テーブルを作ってarticles
に紐づけた。
- 基本は全部フラットにしたいが、
Notes
ディレクトリも対象にした。Notes
には基本posts
からの内部リンクで飛ぶことができる。- 一覧はつくらない
- 一旦コードの整理を行う。
- 全ての一覧記事ページは削除
- searchだけは残す
- カテゴリとタグという概念を削除
- 日報も一旦廃止
- 全てのslugページファイルを用意する
images
は一箇所でいい。()
をつけたレイアウトわけをするかどうかroutes/[category]/[slug].tsx
にする- カテゴリという概念を消したとはいったけど実はある
- コレまでとは少し意味合いが変わる
- 新しい構成
- トップページ
routes/index.tsx
- リダイレクト用
routes/[slug].tsx
- ~~検索結果
routes/search/index.tsx
~~- 検索結果はサイドバーでのみ表示する
- 画像
routes/images/[...path].tsx
仮置き - 単一ページ
routes/[category]/[slug].tsx
- これはリダイレクト用にはいることがあったので修正
routes/posts/[slug].tsx
既存の記事routes/notes/[slug].tsx
Obsidian のNotes/
のメモroutes/works/[slug].tsx
作ったものroutes/map/[slug].tsx
マップ用
- deprecated ページ
routes/(deprecated)/
アプリのプラポリとか
- トップページ
- 全ての一覧記事ページは削除
- 全てのtypesを定義する
Post
Category
- ~~この2つだけで十分かも。 ~~
PostIndex
を追加 (サイドバーなどでのindex表示用)
- Supabaseから記事の取得は
utils
に定義post
postIndex
category
- 画像処理は
api
に定義 - コンポーネントの枠組みを作る
- Freshで全ページ共通のサイドバーを作る

公開日
更新日